package com.white.algebra.dao;

import com.white.algebra.domain.Role;
import java.sql.SQLException;
import java.util.List;

public interface RoleDao {
    /**
     * 查询出所有的角色
     * @return
     */
    List<Role> findAll() throws SQLException;

    /**
     * 根据用户id查询出所对应的角色  property对应的是该实体类的属性
     * @param userId
     * @return
     * @throws Exception
     */
    List<Role> findRoleByUserId(String userId) throws Exception;


    /**
     * 根据权限id查询所对应的角色
     * @param id
     * @return
     */
    List<Role>findRolesByPermissionId(String id) throws SQLException;



    /**
     * 根据角色id查询对应的角色与对应的资源权限
     * @param id
     * @return
     */
    List<Role> findById(String id) throws SQLException;


    /**
     * 查询用户没有的角色
     * @param id
     * @return
     */
    List<Role> findNotRoleByUserId(String id) throws SQLException;

    /**
     * 查询权限没有的角色
     * @param id
     * @return
     */
    List<Role> findRoleByPermissionId(String id) throws SQLException;


    /**
     * 保存角色信息
     * @param role
     */
    void save(Role role) throws SQLException;


    /**
     * 根据角色id删除角色
     * @param roleId
     */
    void deleteById(String roleId) throws SQLException;


    /**
     * 根据角色id删除所用户_角色关联表中的联系
     * @param roleId
     */
    void deleteUserAndRoleById(String roleId) throws SQLException;


    /**
     * 根据角色id删除所角色_资源权限关联表中的联系
     * @param roleId
     */
    void deleteRole_PermissionById(String roleId) throws SQLException;
}
